package cn.tedu.web.service;

import cn.tedu.web.mapper.UserMapper;
import cn.tedu.web.pojo.P;
import cn.tedu.web.pojo.U;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


@Service
public class UserService {
	@Autowired
	private UserMapper mapper;

	// 在 MySQL 中, 由 DDL 和 DML 语句
	// DDL: 数据库 定义 语句
	// DML: 数据库 管理 语句

	// 采用注解事务的方式来声明当前方法是一个事务
	// 在该事务下的执行的 SQL 语句,要么全部成功,要么全部失败
	// 只针对 DML 语句, 主键自增不属于 DML, 所以,不受事务的管辖
	@Transactional
	public void insert() {
		// 1. 往 U 表中插入
		U u = new U();
		u.setName("Timor");
		System.out.println("before insert u.ID:" + u.getId());
		mapper.insertU(u);
		System.out.println("after insert u.ID:" + u.getId());
		// 2. 往 P 表中插入
		P p = new P();
		p.setUid(u.getId());
		p.setPhoto("timor.png");
		System.out.println("before insert p.ID:" + u.getId());
		mapper.insertP(p);
		System.out.println("after insert p.ID:" + u.getId());
	}
}